1. Field of the Invention
The present invention relates to electronic circuit simulators and more particularly to a method for preprocessing input data for such a simulator.
2. Description of the Related Art
In a typical electronic circuit design situation, the designer begins by drawing a design of the circuit which the designer considers appropriate for a given application. Prior to the advent of electronic circuit simulators, a physical prototype or "breadboard" of the circuit would then be made, using a kit of parts (resistors, diodes, transistors, etc.) normally used by the designer's company in manufacturing circuits. The physical circuit would then be tested to determine if it operated as intended. If it did not, the designer would modify the design and the physical prototype, retest the modified prototype, and continue iteratively to refine the design until it operated satisfactorily.
Simulators have come to be widely used to facilitate the computer-aided engineering (CAE) and design (CAD) of electronic circuits and systems. Simulation enables a user to work with a proposed circuit at much less expense than it would be to work with a physical embodiment of the circuit. Simulation also enables the user to vary parameters of operation of the circuit more quickly than in a physical circuit.
A number of simulators have been developed which simulate the operation of integrated electronic circuits. The most widely used such simulator is SPICE, described by L. W. Nagel and D. O. Pederson, "Simulation Program With Integrated Circuit Emphasis (SPICE), " 16th Midwest Symposium on Circuit Theory, Waterloo, Ontario, (Apr. 12, 1973), and available as Electronics Research Laboratory Report No. ERL-M383, University of California, Berkeley, (Apr. 12, 1973). SPICE is a descendant of a simulator known as CANCER. L. W. Nagel and R. A. Rohrer, "Computer Analysis of Nonlinear Circuits, Excluding Radiation (CANCER)," IEEE J. Solid-State Circuits, Vol. SC-6, pp. 166-182, (August, 1971). A detailed description of SPICE is provided in L. W. Nagel, "SPICE2: A Computer Program to Simulate Semiconductor Circuits," Electronics Research Laboratory Report No. ERL-M520 (May 9, 1975), and Ellis Cohen, "Program Reference for SPICE2," Report No. ERL-M592, both available from the Department of Electrical Engineering and Computer Science, University of California, Berkeley. The foregoing cited papers are incorporated herein by reference.
SPICE and other integrated circuit simulators typically include a lumped parameter characterization of ideal components used in an integrated circuit. These include passive components such as resistors, inductors and capacitors. Active components, such as diodes, bipolar transistors and field effect transistors (JFETs and MOSFETs), are provided by models which include a specification of various structural features and parameters that affect their operation. SPICE is also capable of simulating ideal current and voltage sources, and these sources can be either independent or controlled by other currents or voltages in a circuit.
In the prior art, after design of the circuit, the designer typically generates, at a keyboard input to a computer, a line of code which specifies each device in the circuit. The active devices are typically specified by an identifying number, a set of node numbers which identifies the circuit nodes to which the device terminals are attached, whether the device is N or P type, the device width and length and the model assigned to simulate operation of the device.
The model assigned to simulate a particular device depends upon several factors. First, if the device is connected to a power supply or to a ground node, a different model may be selected if the device is not so connected. Secondly, some models are suitable for modelling P type devices whereas others are designed to model N type devices. Finally, a particular model is typically suitable only for devices within a given size range. Thus, the circuit designer is faced with assigning a particular model for each device in the circuit. This presents a tedious task for an integrated circuit having several thousand active devices.
One SPICE program which operates generally as described above is HSPICE, Version 8907, published by Meta Software of San Jose, Calif. HSPICE includes an accompanying user's manual which is incorporated herein by reference. Two types of input data are typically provided to a SPICE program, such as HSPICE. First, model data defines a preselected number of models, including models of active components. Each active component model includes a specification of various structural features and parameters. Secondly, device data is provided in the form referred to above, namely a device number, the circuit nodes to which the device is connected, device size and type and identification of one of the models from the model data for modeling the particular device.
Data specifying a particular model is referred to as a model card while data specifying a particular device is referred to as a device card. Each set of data comprises a line of code in a listing. Such nomenclature stems from the days when a punched computer card contained the data necessary for each specified model or device. All of the device cards and model cards are referred to collectively as a SPICE deck. The model cards are developed by empirical testing of a physical device and may be used in simulations of different circuits made with similar processes. The device cards are hand coded, i.e., data is entered at a keyboard, for a particular circuit design. When the SPICE deck is loaded into a computer programmed with an electronic circuit simulator, the computer simulates operation of the circuit.
Also known in the prior art is use of a schematic computer program, like the EDGE schematics package by Cadence Design Systems, in which a schematic diagram of the integrated circuit design is created. Such a program can automatically provide a portion of the device card data, namely device number, circuit nodes to which the device is connected and device type and size. The model selected to model a particular device is based on the device size, whether it is connected to a power supply or ground and device type. Model selection is determined by the designer and data indicating a particular model is added to each device card by hand-coding the same from a computer terminal.
Each model includes data indicating whether the model is appropriate for modeling a device connected to a power supply or to ground and whether the model is suitable for a P or an N device. Although a particular model is generally valid only for modeling devices within a specified size range, SPICE programs typically do not have an input data format to accommodate data indicating the device size range for which the model is valid. The data in the model card thus provides no indication as to the device size range for which the model is valid.
It would be desirable to eliminate the hand-coding associated with assigning a model to each device.
It is a general object of the present invention to provide a less time consuming and less error prone method for generating input data for an electronic circuit simulator which automatically assigns a model for each device in a specified electronic circuit.
It is a more specific object of the present invention to provide such a method which generates data specifying the circuit devices, and an associated model for each device, in a format compatible with the data input format for an electronic circuit simulator.
It is another specific object of the present invention to provide such a method in which each model for an active device is associated with a device size range for which the model is valid.
The foregoing and other objects, features and advantages of the invention will become more readily apparent from the following detailed description of a preferred embodiment which proceeds with reference to the drawings.